#include <stdio.h>
#include <string.h>
int main ()
{
    char start[21];
    char end[21];
    gets(start);
    int t,i,j,m=0,s;
    t=strlen(start);
    int flag1=1;
    if((start[0]-'0')*2>=10)
    {
        end[0]='1';
        flag1=0;
    }
    for(i=t-1; i>=0; i--)
    {
 
        if((start[i]-'0')*2>=10)//有进位
        {
            s=(start[i]-48)*2%10+m;
            end[i+1]='0'+s;
            m=1;//进位存储
        }
        else
        {
            s=(start[i]-48)*2+m;
            end[i+1]='0'+s;
            m=0;
        }
    }
    int flag=1;
    for(i=1; i<=t; i++)
        for(j=0; j<t; j++)
        {
            if(end[i]==start[j])
            {
                start[j]='a';
                break;
            }
        }
    for(i=0; i<t; i++)
    {
        if(start[i]!='a')
        {
            flag=0;
            break;
        }
    }
    if(flag==1)
        printf("Yes\n");
    else printf("No\n");
    if(flag1==0)
    {
        for(i=0; i<=t; i++)
        {
            printf("%c",end[i]);
        }
    }
    else
    {
        for(i=1; i<=t; i++)
        {
            printf("%c",end[i]);
        }
    }
    return 0;
 
}